Ampliación de un bloque de funciones
General
La extensión de un bloque de funciones se basa en el concepto de herencia en la programación orientada a objetos. Para ello, un bloque de función derivado "amplía" un bloque de función básico y, por lo tanto, recibe las propiedades del bloque de función básico además de sus propias propiedades.
La extensión de un bloque de función significa:
El bloque de funciones derivado contiene todos los datos y métodos definidos por el bloque de funciones base. Puede utilizar una instancia del bloque de función básico en cualquier contexto en el que CODESYS espera un bloque de funciones del tipo de bloque de funciones básico.
El módulo de función derivado puede sobrescribir los métodos que ha definido en el módulo de función base. Esto significa: El bloque de funciones derivado puede definir un método con el mismo nombre, entradas y salidas definidas por el bloque de funciones base.
Sugerencia: Se proporciona el siguiente soporte para esta sobrescritura de los métodos, acciones, propiedades y transiciones heredados del bloque básico. Si inserta un método, acción, etc. debajo del bloque de construcción derivado, obtiene el cuadro de diálogo añadir objeto un cuadro combinado con una selección de los métodos, acciones, etc. utilizados en el módulo básico y puede aceptarlos, solo para luego adaptarlos en consecuencia.
El bloque de funciones derivado no debe contener una variable de bloque de funciones con el mismo nombre que utiliza el bloque de funciones base. El compilador informa esto como un error.
La única excepción: si utiliza una variable en el bloque de función básico como
VAR_TEMP
declarado, entonces el bloque de función derivado puede definir una variable con el mismo nombre. En este caso, el bloque de funciones derivado ya no puede acceder a la variable del bloque de funciones básico.Puede usar las variables y los métodos del bloque de funciones base dentro del alcance del bloque de funciones derivado usando el
SUPER
- Punteros de dirección directamente.
Importante
No se permite la herencia múltiple.
Excepción: un bloque de funciones puede implementar varias interfaces y una interfaz puede ampliar otras interfaces.
Ampliación de un bloque de funciones básico con un nuevo bloque de funciones
Requisito: El proyecto actualmente abierto tiene un bloque de función básico, por ejemplo POU_1 (FB), que se ampliará con un nuevo módulo de funciones.
Seleccione el objeto Solicitud en el árbol de dispositivos y seleccione el comando de menú .
El diálogo Añadir POU se abre
Introduzca un nombre para el nuevo módulo de funciones en el campo de entrada Apellido una, por ejemplo POU_Ex.
Escoger bloque de funciones.
Escoger avanzado y haga clic en el botón
.
En el asistente de entrada, elija de la categoría bloques de funciones bajo Solicitud el POU(FB) que va a servir como bloque funcional básico, por ejemplo
POU_1
y haga clic OK.Opcionalmente puedes tener uno modificador de acceso para el nuevo bloque de funciones del cuadro combinado.
Elija del cuadro combinado lenguaje de implementación por ejemplo Texto estructurado (ST) fuera.
haga clic en añadir.
CODESYS agrega el bloque de función
POU_Ex
en el árbol de dispositivos y se abre el editor. La primera línea dice:FUNCTION_BLOCK POU_Ex EXTENDS POU_1
El bloque de funciones
POU_Ex
amplía el bloque de funciones básicoPOU_1
.
Ampliación de un bloque de funciones básico con un bloque de funciones existente
Requisito: El proyecto actualmente abierto tiene un bloque de función básico, por ejemplo POU_1(FB)
, y otro bloque de funciones, por ejemplo POU_Ex(FB)
. El bloque de funciones POU_Ex(FB)
también debe tener las propiedades del bloque de función básico. Eso significa: POU_Ex(FB)
objetivo POU_1(FB)
expandir.
Haga doble clic en el bloque de funciones en el árbol de dispositivos
POU_Ex(FB)
.Se abre el editor del bloque de funciones.
Expandir la entrada de la fila superior existente
FUNCTION_BLOCK POU_Ex
ConEXTENDS POU_1
.El bloque de funciones POU_Ex amplía el bloque de funciones básico
POU_1
.
Para más información, ver: Implementar una interfaz y Ampliar una interfaz
Soporte de entrada al generar POU heredadas
Al realizar una programación orientada a objetos y utilizar la herencia (EXTENDS
palabra clave) de las POU, puede obtener soporte de la siguiente manera:
Cuando inserta una acción, una propiedad, un método o una transición debajo de una POU derivada de una POU base, el Agregar … se abre el cuadro de diálogo. Luego, el campo de entrada para el nombre se extiende a un cuadro de lista. El cuadro de lista contiene una selección válida de las acciones, propiedades, métodos o transiciones disponibles en la POU base. Ahora puede, por ejemplo, aceptar fácilmente un método de la POU base y luego adaptarlo a la función derivada de la POU.
Métodos y propiedades con el modificador de acceso PRIVATE
no se enumeran aquí porque tampoco se heredan. Métodos y propiedades con el modificador de acceso PUBLIC
obtiene automáticamente un campo modificador de acceso en blanco al aceptar en la POU derivada, lo que significa lo mismo funcionalmente.
Para obtener más información, consulte: Propiedad, Método, Transición, Acción,
